# 字符串由多种定义形式
# 1.单引号定义法：name='张三'    可以内含双引号
# 2.双引号定义法：name="张三“    可以内含单引号
# 3.三引号定义法：name="""张三"""    可以使用转义字符
# 三引号定义法，和多行注释写法一样，同样支持换行操作
# 使用变量接收它，他就是字符串。不使用变量接受它，就作为注释使用

name1 = 'tom'
print(type(name1))
name2 = "tom"
print(type(name2))
name3 = """tom"""
print(type(name3))

tmp1 = 'test1"'
tmp2 = "test2'"
tmp3 = """\"test3\""""
tmp4 = 'test4\''

# 字符串拼接
# 字符串字面量之间的拼接
print("rxy" + "24601")
# 字符串字面量和变量之间的拼接
m_name = "tom"
number = "24601"
print(m_name + number)

# 字符串格式化
# ①变量过多拼接麻烦②字符串无法和数字或者其他类型完成拼接
# 通过使用占位符号实现拼接
# %s用于将内容转换为字符串
# %d用于将内容转换为整型
# %f用于将内容转换为浮点型
date_num = 18
date_month = 11
date = "现在的日期是%s月%s日" % (date_month, date_num)
print(date)

# 格式化精度控制
# 使用辅助符号“m.n”来控制数据的宽度和精度
# m 控制宽度，要求是数字。如果设置宽度小于数字自身，不生效
# .n 控制小数点精度，要求是数字，会进行小数四舍五入
"""
%5d:表示将整数的宽度控制在5位，如数字11，被设置为5d，就会变成:[空格][空格][空格]11
用三个空格补足宽度
%5.2f:表示将宽度控制为5，将小数点精度设置为2
"""
num1 = 11
num2 = 11.2345
print("数字11宽度限制6，结果位：%6d" % num1)
print("数字11宽度限制1，结果为：%1d" % num1)
print("数字11.2345宽度限制7，小数精度3，结果为：%7.3f" % num2)
print("数字11.2345宽度限制5，小数精度2，结果为：%5.2f" % num2)

# 字符串快速格式化
# 快速格式化不关注宽度与精度
# ”(变量}{变量}”的方式进行快速格式化
m_name1 = "rxy"
m_age = 18
m_date = 11.18
print(f"我是{m_name1},年龄为{m_age},今天的日期为{m_date}")

# 对表达式格式化
print("1*1的结果是：%d" % (1 * 1))
print(f"1*1的结果是：{1 * 1}")
print("字符串在python中的类型为：%s" % type("字符串"))
# 不能用快速格式化对表达式进行格式化
#  print(f"字符串在python中的类型为：{type("字符串")}")



